Android studio gave the error:
Execution failed for task ':app:kaptDebugKotlin'.
> A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution
> java.lang.reflect.InvocationTargetException (no error message)
I want to add in my project Kotlin Coroutines and use it with Room database. But after added all libraries I got this error. This is all information from the compiler.
I have identified, This is because of the annotation @Database. If I removed this annotation, the error don't appear, but Room is not working too.
My gradle file:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
//apply plugin: 'androidx.navigation.safeargs'
kotlin {
experimental {
coroutines 'enable'
}
}
android {
compileSdkVersion 29
defaultConfig {
applicationId "com.bestcred.coursetthree"
minSdkVersion 21
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
//vectorDrawables.useSupportLibrary = true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
// Enables data binding.
buildFeatures {
dataBinding true
}
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
// Support libraries
implementation "androidx.appcompat:appcompat:1.2.0"
implementation 'com.google.android.material:material:1.2.0'
implementation "androidx.fragment:fragment:1.2.5"
implementation "androidx.constraintlayout:constraintlayout:2.0.0"
// Android KTX
implementation 'androidx.core:core-ktx:1.3.1'
// Room and Lifecycle dependencies
implementation "androidx.room:room-runtime:$room_version"
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
kapt "android.arch.persistence.room:compiler:$room_version"
// Kotlin Extensions and Coroutines support for Room
implementation "androidx.room:room-ktx:$room_version"
// Coroutines
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutine_version"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutine_version"
}
kotlin_version = "1.4.0"
room_version = "2.2.5"
coroutine_version = '1.3.9'
I update Room version and add Kotlin Coroutines. What's problem?
I had to update Room to latest 2.2.5 and it has resolved the issue.
You need change:
kapt "android.arch.persistence.room:compiler:$room_version"
to
kapt "androidx.room:room-compiler:$room_version"
Android Studio's UI was just hiding the error...
when the error occurred, it highlighted the item in the list view, and showed an unhelpful message in the terminal view.

to find the real error, select the root item in the list view so that Android Studio would display the whole build output in the terminal view, then scroll to find error.

This exception occurs when you have done some mistake on Room database or Doa or entity class for example I had done mistakes in the entity class
so I would suggest to check the entity,dao or database class carefully if you imported the right dependency.
@Entity(tableName = "user_table")
data class User(
val firstName: String,
val lastName: String,
val age: Int
) {
@PrimaryKey(autoGenerate = true)
var id: Int = 0 //**do not made it val**
}
I had faced the same issue. The problem was because I was using coroutine suspend functions in the Room DAO and had not implemented the necessary implementations. The following worked for me, try replacing the existing Room dependencies with:
def room_version = "2.2.5" //Use latest version
"androidx.room:room-runtime:$room_version"
"androidx.room:room-compiler:$room_version"
"androidx.room:room-ktx:$room_version"
If the above does not work, go to Analyze->Inspect Code and check for code-breaking warnings or errors(Specifically in Room)
In my case I gave the argument type of insertAll() and delete() function as Entity ofyour database, the Error Solved
@Dao
interface NotesDao {
@Insert
fun insertAll(INotesEntity: NotesEntity) // argument type should be entity of your database
@Delete
fun delete(DNotesEntity: NotesEntity) // argument type should be entity of your database
}
Make sure to include all entities inside the Database annotation.
This issue occurred on package renaming I've dragged and dropped all files from one package to other.
Objectbox it created the cursor files and entity files (auto-generated files)
Had to delete them and re-built.
It ate up 1 hour straight -_-
The only thing that worked for me -
In gradle.properties replace the following line -
org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
by
org.gradle.jvmargs=--illegal-access=permit
Try to add this in your app/build.gradle file and run the program again. It helped me to find the real cause of the issue.
kapt {
correctErrorTypes true
}
Make sure Gradle JDK is set to the correct version (it was set to JDK 8 even though I've been using JDK 11 for quite some time now).
Open Preferences -> Builds Tools -> Gradle -> Set Gradle JDK.
Update the gradle JDK to java 11.
While it's rather strange, I had onDestory defined two times in one file and caused this error when trying to run the app, once i deleted one of them everything worked normally.
I might be late but only following solution worked for me.
Open gradle.properties file in Android studio.
Add following lines:
kapt.use.worker.api=false
kapt.incremental.apt=false
Clean & Re-build the application.
Done
I updated the Room version from 2.2.5 to 2.3.0 or to current version in the build.gradle script file. The build was successful.
Today I faced this error. In my case, I have both java 11 and java 16 installed in my laptop, and java 16 was the default. But the gradle in my project uses java 11 to build it. So when I invoked
$ gradle build
from my terminal, it would use java 16 and so the build failed. I know, the proper solution is to make my code compatible with java 16, but for now, I am explicitly telling gradle to use java 11 using the following command:
$ gradle build -Dorg.gradle.java.home=/usr/lib/jvm/java-11-openjdk-amd64 # warning: use te path to your java 11
Since it is a large command, I saved it in a script file and so simply running the script solves the problem for me.
I'm currently having this error on m1 Mac with Room version 2.3.0.
I fixed it by changing it to 2.4.0-alpha04.
This has been reported to Google (issue tracker).
I develop in Apple Silicon Macbook M1.
use room_version 2.2.4, fails in 2.2.5
def room_version = "2.2.4"
implementation "androidx.room:room-runtime:$room_version"
kapt "androidx.room:room-compiler:$room_version"
implementation "androidx.room:room-ktx:$room_version"
testImplementation "androidx.room:room-testing:$room_version"